package com.pms.service;

import com.pms.common.PageBean;
import com.pms.pojo.SysUser;
import jakarta.servlet.http.HttpServletResponse;

import java.util.List;


public interface SysUserService {

    /**
     * 用户登录
     *
     * @param user
     * @return
     */
    SysUser login(SysUser user);

    /**
     * 修改密码
     * @param userId 用户ID
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     */
    void updatePassword(Long userId, String oldPassword, String newPassword);

    /**
     * 新增员工
     */
    void save(SysUser sysUser);

    /**
     * 更新员工信息
     */
    void update(SysUser sysUser);

    /**
     * 删除员工
     */
    void delete(Long id);

    /**
     * 根据id查询员工
     */
    SysUser getById(Long id);

    /**
     * 更新员工状态
     */
    void updateStatus(Long id, Integer status);

    /**
     * 查询员工列表
     */
    List<SysUser> list();

    /**
     * 分页条件查询
     */
    PageBean<SysUser> page(Integer page,
                           Integer pageSize,
                           String code,
                           String name,
                           Long deptId,
                           Long postId,
                           Integer status);

    /**
     * 批量查询用户信息
     *
     * @param ids 用户ID列表
     * @return 用户信息列表
     */
    List<SysUser> findByIds(List<Long> ids);

    /**
     * 批量删除
     */
    void batchDelete(List<Long> ids);

    /**
     * 导出数据
     */
    void export(HttpServletResponse response) throws Exception;

    /**
     * 获取用户详细信息（包括部门和岗位信息）
     * @param userId 用户ID
     * @return 用户详细信息
     */
    SysUser getUserDetailInfo(Long userId);
}
